// 导出所有服务相关内容
export * from './mockData';
export * from './mockHandlers';
export * from './mockWorker';
export * from './apiClient';

// 重新导出主要服务
export { default as apiClient } from './apiClient';
export { default as worker } from './mockWorker';
export { startMocking, stopMocking, resetMocking } from './mockWorker';

// 服务初始化函数
export const initializeServices = async () => {
  // 在开发环境中启动MSW
  if (import.meta.env.DEV) {
    try {
      const { startMocking } = await import('./mockWorker');
      // 设置超时，防止MSW初始化过程卡住
      const mockPromise = startMocking();
      const timeoutPromise = new Promise((_, reject) => {
        setTimeout(() => reject(new Error('MSW初始化超时')), 3000);
      });
      
      await Promise.race([mockPromise, timeoutPromise]).catch(err => {
        console.warn('MSW初始化警告:', err);
        // 即使MSW初始化失败，也不阻止应用继续运行
      });
    } catch (error) {
      console.error('服务初始化失败:', error);
      // 即使服务初始化失败，也不阻止应用继续运行
    }
  }
};

// 服务清理函数
export const cleanupServices = () => {
  // 停止MSW
  if (import.meta.env.DEV) {
    const { stopMocking } = require('./mockWorker');
    stopMocking();
  }
};